home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
pctj8409.arc
/
MACROS.ASM
< prev
next >
Wrap
Assembly Source File
|
1986-09-14
|
12KB
|
461 lines
..HEAD01LPC Macros for Structured Programming PAGE ##
..PGNO22
PC Macros for Structured Programming PAGE 22
INITDOIF MACRO
?CTD=0
?CTE=0
?CT2X=0
?CT3X=0
?CT4X=0
?S1 = 0
?S2 = 0
?S3 = 0
?S4 = 0
?CTI=0
?CTI2X=0
?CTI3X=0
?CTI4X=0
?SI1 = 0
?SI2 = 0
?SI3 = 0
?SI4 = 0
ENDM
..PAGE
IFM MACRO P1,P2,P3,P4,O1,P5,P6,P7,P8,O2,P9,P10,P11,P12
?CTA = 0
?CTI = ?CTI + 1
IFE ?SI1
?CTI1 = ?CTI
ELSE
IFE ?SI2
IFE ?CTI2X
?CTI2 = ?CTI
?CTI2X = 1
ELSE
?CTI2 = ?CTI2 +1
?CTI2X = ?CTI2X +1
ENDIF
ELSE
IFE ?SI3
IFE ?CTI3X
?CTI3 = ?CTI
?CTI3X = 1
ELSE
?CTI3 = ?CTI3 +1
?CTI3X = ?CTI3X +1
ENDIF
ELSE
IFE ?SI4
IFE ?CTI4X
?CTI4 = ?CTI
?CTI4X = 1
ELSE
?CTI4 = ?CTI4 +1
?CTI4X = ?CTI4X +1
ENDIF
ELSE
MJMP MP,?IFERR
ENDIF
ENDIF
ENDIF
ENDIF
IFB <P2>
MJMP P1,?IF,%?CTI
MJMP MP,?IS,%?CTI
MLBL ?IF,%?CTI
ELSE
P1 P2,P4
IFIDN <O1>,<AND>
MJMP P3,?IA,%?CTI,%?CTA
MJMP MP,?IS,%?CTI
MLBL ?IA,%?CTI,%?CTA
?CTA = ?CTA + 1
P5 P6,P8
MJMP P7,?IA,%?CTI,%?CTA
MJMP MP,?IS,%?CTI
MLBL ?IA,%?CTI,%?CTA
?CTA = ?CTA + 1
IFIDN <O2>,<AND>
P9 P10,P12
MJMP P11,?IF,%?CTI
MJMP MP,?IS,%?CTI
ENDIF
MLBL ?IF,%?CTI
ELSE
MJMP P3,?IF,%?CTI
IFIDN <O1>,<OR>
P5 P6,P8
MJMP P7,?IF,%?CTI
IFIDN <O2>,<OR>
P9 P10,P12
MJMP P11,?IF,%?CTI
ENDIF
ENDIF
MJMP MP,?IS,%?CTI
MLBL ?IF,%?CTI
ENDIF
ENDIF
ENDM
..PAGE
ELSEM MACRO
IFE ?CTI2X
?CTX = ?CTI1
ELSE
IFE ?CTI3X
?CTX = ?CTI2
ELSE
IFE ?CTI4X
?CTX = ?CTI3
ELSE
?CTX = ?CTI4
ENDIF
ENDIF
ENDIF
MJMP MP,?IE,%?CTX
MLBL ?IS,%?CTX
ENDM
..PAGE
ENDIFM MACRO
IFE ?CTI2X
MALTLB ?IS,%?CTI1,?IE
?CTI1 = ?CTI1 - 1
?SI1 = 1
IFE ?CTI1
?SI1 = 0
ENDIF
ELSE
IFE ?CTI3X
MALTLB ?IS,%?CTI2,?IE
?CTI2 = ?CTI2 - 1
?CTI2X = ?CTI2X - 1
?SI2 = 1
IFE ?CTI2X
?SI2 = 0
ENDIF
ELSE
IFE ?CTI4X
MALTLB ?IS,%?CTI3,?IE
?CTI3 = ?CTI3 - 1
?CTI3X = ?CTI3X - 1
?SI3 = 1
IFE ?CTI3X
?SI3 = 0
ENDIF
ELSE
MALTLB ?IS,%?CTI4,?IE
?CTI4 = ?CTI4 - 1
?CTI4X = ?CTI4X - 1
?SI4 = 1
IFE ?CTI4X
?SI4 = 0
ENDIF
ENDIF
ENDIF
ENDIF
ENDM
..PAGE
DO MACRO TYP1,P1,P2,P3,P4
?CTD = ?CTD + 1
IFE ?S1
?CT1 = ?CTD
ELSE
IFE ?S2
IFE ?CT2X
?CT2 = ?CTD
?CT2X = 1
ELSE
?CT2 = ?CT2 +1
?CT2X = ?CT2X +1
ENDIF
ELSE
IFE ?S3
IFE ?CT3X
?CT3 = ?CTD
?CT3X = 1
ELSE
?CT3 = ?CT3 +1
?CT3X = ?CT3X +1
ENDIF
ELSE
IFE ?S4
IFE ?CT4X
?CT4 = ?CTD
?CT4X = 1
ELSE
?CT4 = ?CT4 +1
?CT4X = ?CT4X +1
ENDIF
ELSE
MJMP MP,?DOERR
ENDIF
ENDIF
ENDIF
ENDIF
IFIDN <TYP1>,<INF>
MLBL ?DW,%?CTD
ELSE
IFIDN <TYP1>,<WHILE>
MLBL ?DW,%?CTD
P1 P2,P4
MJMP P3,?DL,%?CTD
MJMP MP,?DE,%?CTD
MLBL ?DL,%?CTD
ELSE
IFIDN <TYP1>,<UNTIL>
MLBL ?DW,%?CTD
P1 P2,P4
MJMPN P3,?DL,%?CTD
MJMP MP,?DE,%?CTD
MLBL ?DL,%?CTD
ELSE
IFIDN <TYP1>,<FROM>
IFNB <P2>
MOV P1,P2
ENDIF
MLBL ?DW,%?CTD
IFNB <P3>
SUB P1,P3
ELSE
DEC P1
ENDIF
IFNB <P4>
CMP P1,P4
ENDIF
MJMP GE,?DL,%?CTD
MJMP MP,?DE,%?CTD
MLBL ?DL,%?CTD
ELSE
MJMP MP,?BADDO,%?CTD
ENDIF
ENDIF
ENDIF
ENDIF
ENDM
..PAGE
DOEXIT MACRO P1,P2,P3,P4
IFE ?CT2X
?CTX = ?CT1
ELSE
IFE ?CT3X
?CTX = ?CT2
ELSE
IFE ?CT4X
?CTX = ?CT3
ELSE
?CTX = ?CT4
ENDIF
ENDIF
ENDIF
IFB <P1>
MJMP MP,?DE,%?CTX
ELSE
IFB <P2>
MJMPN P1,?DX,%?CTX,%?CTE
MJMP MP,?DE,%?CTX
MLBL ?DX,%?CTX,%?CTE
?CTE = ?CTE +1
ELSE
P1 P2,P4
MJMPN P3,?DX,%?CTX,%?CTE
MJMP MP,?DE,%?CTX
MLBL ?DX,%?CTX,%?CTE
?CTE = ?CTE +1
ENDIF
ENDIF
ENDM
..PAGE
ENDDO MACRO
IFE ?CT2X
MJMP MP,?DW,%?CT1
MLBL ?DE,%?CT1
?CT1 = ?CT1 - 1
?S1 = 1
IFE ?CT1
?S1 = 0
?CTE = 0
ENDIF
ELSE
IFE ?CT3X
MJMP MP,?DW,%?CT2
MLBL ?DE,%?CT2
?CT2 = ?CT2 - 1
?CT2X = ?CT2X - 1
?S2 = 1
IFE ?CT2X
?S2 = 0
ENDIF
ELSE
IFE ?CT4X
MJMP MP,?DW,%?CT3
MLBL ?DE,%?CT3
?CT3 = ?CT3 - 1
?CT3X = ?CT3X - 1
?S3 = 1
IFE ?CT3X
?S3 = 0
ENDIF
ELSE
MJMP MP,?DW,%?CT4
MLBL ?DE,%?CT4
?CT4 = ?CT4 - 1
?CT4X = ?CT4X - 1
?S4 = 1
IFE ?CT4X
?S4 = 0
ENDIF
ENDIF
ENDIF
ENDIF
ENDM
..PAGE
MLBL MACRO P1,CT1,CT2
&P1&CT1&CT2:
ENDM
MALTLB MACRO P1,P2,P3
IFDEF &P1&P2
MLBL P3,P2
ELSE
MLBL P1,P2
ENDIF
ENDM
MJMP MACRO P1,P2,CT1,CT2,P3,CT3
IFNB <P3>
&P3&CT3: J&P1 &P2&CT1&CT2
ELSE
J&P1 &P2&CT1&CT2
ENDIF
ENDM
..PAGE
MJMPN MACRO P1,P2,CT1,CT2,P3,CT3
IFIDN <P1>,<E>
MJMP NE,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<Z>
MJMP NZ,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NE>
MJMP E,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NZ>
MJMP Z,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<BE>
MJMP NBE,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NA>
MJMP A,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NBE>
MJMP BE,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<A>
MJMP NA,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<AE>
MJMP NAE,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NB>
MJMP B,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NAE>
MJMP AE,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<B>
MJMP NB,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<G>
MJMP NG,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NLE>
MJMP LE,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NG>
MJMP G,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<LE>
MJMP NLE,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<GE>
MJMP NGE,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NL>
MJMP L,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NGE>
MJMP GE,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<L>
MJMP NL,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<O>
MJMP NO,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NO>
MJMP O,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NS>
MJMP S,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<S>
MJMP NS,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NP>
MJMP P,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<P>
MJMP NP,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<PO>
MJMP PE,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<PE>
MJMP PO,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<NC>
MJMP C,P2,CT1,CT2,P3,CT3
ELSE
IFIDN <P1>,<C>
MJMP NC,P2,CT1,CT2,P3,CT3
ELSE
MJMP MP,?BADOP,CT1
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDM